package view;

/**
 * @author eversonpaulo
 */
import javax.swing.JOptionPane;
import java.awt.Font;
import java.util.ArrayList;
import javax.swing.table.DefaultTableModel;
//import Relatorio.rel_Tabelas;
import Utilitarios.TamanhoMaximoTextField;
import dao.SetorDAO;

import java.awt.Component;
import java.awt.Cursor;
import java.awt.FlowLayout;
import java.beans.PropertyVetoException;
import model.Setor;

import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.plaf.basic.BasicInternalFrameUI;
import org.netbeans.lib.awtextra.AbsoluteLayout;

//import net.sf.jasperreports.engine.JRException;
public class frameSetor extends javax.swing.JInternalFrame {
    
    private DefaultTableModel modelo = new DefaultTableModel() {
        public boolean isCellEditable(int row, int column) {
            return false;
        }
    };
    String opcao = "";
    public int inutil;
    
    public frameSetor() {
        initComponents();
        liberarCampos(false);
        tabela();

        //Tira as barras de todos os lados da janela
        ((BasicInternalFrameUI) this.getUI()).setNorthPane(null);
        ((BasicInternalFrameUI) this.getUI()).setSouthPane(null);
        ((BasicInternalFrameUI) this.getUI()).setWestPane(null);
        ((BasicInternalFrameUI) this.getUI()).setEastPane(null);
        
        jtResponsavel.setDocument(new TamanhoMaximoTextField(50));
        jtSigla.setDocument(new TamanhoMaximoTextField(22));
        
        lbSigla.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbDescricao.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbIncluir.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbAlterar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbSalvar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbCancelar.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbExcluir.setFont(new Font("Tahoma", Font.PLAIN, 11));
//        lbSair.setFont(new Font("Tahoma", Font.PLAIN, 11));
        relTipo1.setFont(new Font("Tahoma", Font.PLAIN, 11));
        relTipo2.setFont(new Font("Tahoma", Font.PLAIN, 11));
        
        lbSigla1.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbSigla.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbDescricao1.setFont(new Font("Tahoma", Font.PLAIN, 11));
        lbDescricao.setFont(new Font("Tahoma", Font.PLAIN, 11));
        jtCodSetor.setVisible(false);
        ajusta_botoes();
        monta_jTUnidade();
        exibePainelCadastro(false);

        //  monta_jTUnidade();
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }
        
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        buttonGroup1 = new javax.swing.ButtonGroup();
        jPanel2 = new javax.swing.JPanel();
        btPrimeiro = new javax.swing.JButton();
        btAnterior = new javax.swing.JButton();
        btProximo = new javax.swing.JButton();
        btUltimo = new javax.swing.JButton();
        jLabel1 = new javax.swing.JLabel();
        btNovo = new javax.swing.JButton();
        btEditar = new javax.swing.JButton();
        btExcluir = new javax.swing.JButton();
        btImprimir = new javax.swing.JButton();
        relTipo1 = new javax.swing.JRadioButton();
        relTipo2 = new javax.swing.JRadioButton();
        panelCadastro = new javax.swing.JPanel();
        jtOrganograma = new javax.swing.JTextField();
        lbSigla1 = new javax.swing.JLabel();
        jtSigla = new javax.swing.JTextField();
        lbSigla = new javax.swing.JLabel();
        jtCodSetor = new javax.swing.JTextField();
        jtResponsavel = new javax.swing.JTextField();
        lbDescricao = new javax.swing.JLabel();
        jtDescricao = new javax.swing.JTextField();
        lbDescricao1 = new javax.swing.JLabel();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTUnidade = new javax.swing.JTable();
        jPanel1 = new javax.swing.JPanel();
        jPanel4 = new javax.swing.JPanel();
        btGravar = new javax.swing.JButton();
        btCancelar = new javax.swing.JButton();
        btSair = new javax.swing.JButton();

        setClosable(true);
        setTitle("Gerenciamento de Setor");
        setToolTipText("");
        setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        btPrimeiro.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710613_playback_ff (2).png"))); // NOI18N
        btPrimeiro.setToolTipText("Primeiro Registro");
        btPrimeiro.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btPrimeiroActionPerformed(evt);
            }
        });
        getContentPane().add(btPrimeiro, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 550, -1, -1));

        btAnterior.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710631_playback_play (2).png"))); // NOI18N
        btAnterior.setToolTipText("Registro Anterior");
        btAnterior.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btAnteriorActionPerformed(evt);
            }
        });
        getContentPane().add(btAnterior, new org.netbeans.lib.awtextra.AbsoluteConstraints(110, 550, -1, -1));

        btProximo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710631_playback_play.png"))); // NOI18N
        btProximo.setToolTipText("Próximo Registro");
        btProximo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btProximoActionPerformed(evt);
            }
        });
        getContentPane().add(btProximo, new org.netbeans.lib.awtextra.AbsoluteConstraints(600, 550, -1, -1));

        btUltimo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398710613_playback_ff.png"))); // NOI18N
        btUltimo.setToolTipText("Último Registro");
        btUltimo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btUltimoActionPerformed(evt);
            }
        });
        getContentPane().add(btUltimo, new org.netbeans.lib.awtextra.AbsoluteConstraints(650, 550, -1, -1));

        jLabel1.setFont(new java.awt.Font("Tahoma", 1, 18)); // NOI18N
        jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        jLabel1.setText("Setor");
        getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 10, 640, 30));

        btNovo.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709290_Add.png"))); // NOI18N
        btNovo.setToolTipText("Inserir um novo registro");
        btNovo.setFocusable(false);
        btNovo.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btNovo.setMinimumSize(new java.awt.Dimension(85, 25));
        btNovo.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btNovoActionPerformed(evt);
            }
        });
        getContentPane().add(btNovo, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 70, -1, 40));

        btEditar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709081_edit-file.png"))); // NOI18N
        btEditar.setToolTipText("Alterar o registro atual");
        btEditar.setFocusable(false);
        btEditar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btEditar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btEditarActionPerformed(evt);
            }
        });
        getContentPane().add(btEditar, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 70, -1, 40));

        btExcluir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708641_Delete.png"))); // NOI18N
        btExcluir.setToolTipText("Excluir o registro atual");
        btExcluir.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        btExcluir.setFocusable(false);
        btExcluir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btExcluir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btExcluirActionPerformed(evt);
            }
        });
        getContentPane().add(btExcluir, new org.netbeans.lib.awtextra.AbsoluteConstraints(300, 70, -1, 40));

        btImprimir.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398709420_printer.png"))); // NOI18N
        btImprimir.setToolTipText("Imprime Relatório da Tabela Atual");
        btImprimir.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btImprimir.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btImprimirActionPerformed(evt);
            }
        });
        getContentPane().add(btImprimir, new org.netbeans.lib.awtextra.AbsoluteConstraints(480, 70, -1, 40));

        buttonGroup1.add(relTipo1);
        relTipo1.setSelected(true);
        relTipo1.setText("Código");
        relTipo1.setToolTipText("Relatório por Código");
        getContentPane().add(relTipo1, new org.netbeans.lib.awtextra.AbsoluteConstraints(550, 70, 60, 30));

        buttonGroup1.add(relTipo2);
        relTipo2.setText("Sigla");
        relTipo2.setToolTipText("Relatório por Descrição");
        getContentPane().add(relTipo2, new org.netbeans.lib.awtextra.AbsoluteConstraints(620, 70, 80, 30));

        panelCadastro.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
        panelCadastro.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());

        jtOrganograma.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtOrganograma.setToolTipText("Sigla Do Organograma");
        jtOrganograma.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtOrganogramaActionPerformed(evt);
            }
        });
        panelCadastro.add(jtOrganograma, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 50, 170, -1));

        lbSigla1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbSigla1.setText("Organograma:");
        lbSigla1.setToolTipText("Organograma");
        panelCadastro.add(lbSigla1, new org.netbeans.lib.awtextra.AbsoluteConstraints(340, 30, 80, 20));

        jtSigla.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtSigla.setToolTipText("Sigla do Setor");
        jtSigla.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtSiglaActionPerformed(evt);
            }
        });
        panelCadastro.add(jtSigla, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 50, 170, -1));

        lbSigla.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbSigla.setText("Sigla :");
        lbSigla.setToolTipText("Setor");
        panelCadastro.add(lbSigla, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 30, 40, 20));

        jtCodSetor.setEditable(false);
        jtCodSetor.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N
        jtCodSetor.setHorizontalAlignment(javax.swing.JTextField.CENTER);
        jtCodSetor.setToolTipText("Código do Setor");
        jtCodSetor.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jtCodSetor.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtCodSetorActionPerformed(evt);
            }
        });
        panelCadastro.add(jtCodSetor, new org.netbeans.lib.awtextra.AbsoluteConstraints(500, 20, 60, -1));

        jtResponsavel.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtResponsavel.setToolTipText("Responsável pelo Setor");
        jtResponsavel.setAutoscrolls(false);
        jtResponsavel.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtResponsavelActionPerformed(evt);
            }
        });
        panelCadastro.add(jtResponsavel, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 100, 300, -1));

        lbDescricao.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbDescricao.setText("Responsável:");
        lbDescricao.setToolTipText("Responsável");
        panelCadastro.add(lbDescricao, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 80, 80, 20));

        jtDescricao.setHorizontalAlignment(javax.swing.JTextField.LEFT);
        jtDescricao.setToolTipText("Descrição do Setor");
        jtDescricao.setAutoscrolls(false);
        jtDescricao.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jtDescricaoActionPerformed(evt);
            }
        });
        panelCadastro.add(jtDescricao, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 150, 490, -1));

        lbDescricao1.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
        lbDescricao1.setText("Descrição :");
        lbDescricao1.setToolTipText("Descrição");
        panelCadastro.add(lbDescricao1, new org.netbeans.lib.awtextra.AbsoluteConstraints(20, 130, 80, 20));

        getContentPane().add(panelCadastro, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 140, 570, 200));

        jTUnidade.setModel(new javax.swing.table.DefaultTableModel(
            new Object [][] {
                {},
                {},
                {},
                {}
            },
            new String [] {

            }
        ));
        jTUnidade.setToolTipText("Registro Cadastrados");
        jTUnidade.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTUnidadeMouseClicked(evt);
            }
        });
        jTUnidade.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyReleased(java.awt.event.KeyEvent evt) {
                jTUnidadeKeyReleased(evt);
            }
        });
        jScrollPane1.setViewportView(jTUnidade);

        getContentPane().add(jScrollPane1, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 140, 640, 390));
        getContentPane().add(jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 660, 740, 10));
        getContentPane().add(jPanel4, new org.netbeans.lib.awtextra.AbsoluteConstraints(10, 0, 20, 550));

        btGravar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708417_Save.png"))); // NOI18N
        btGravar.setToolTipText("Salvar alterações ou uma nova inclusão do registro");
        btGravar.setFocusable(false);
        btGravar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btGravar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btGravarActionPerformed(evt);
            }
        });
        getContentPane().add(btGravar, new org.netbeans.lib.awtextra.AbsoluteConstraints(60, 70, -1, 40));

        btCancelar.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/1398708933_Redo.png"))); // NOI18N
        btCancelar.setToolTipText("Cancelar alterações ou a inclusão do novo registro");
        btCancelar.setFocusable(false);
        btCancelar.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER);
        btCancelar.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btCancelarActionPerformed(evt);
            }
        });
        getContentPane().add(btCancelar, new org.netbeans.lib.awtextra.AbsoluteConstraints(170, 70, -1, 40));

        btSair.setIcon(new javax.swing.ImageIcon(getClass().getResource("/Imagens/logout_user_login_account-3222.png"))); // NOI18N
        btSair.setToolTipText("Fechar o Gerenciamento de Setor");
        btSair.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                btSairActionPerformed(evt);
            }
        });
        getContentPane().add(btSair, new org.netbeans.lib.awtextra.AbsoluteConstraints(640, 600, -1, -1));
        btSair.getAccessibleContext().setAccessibleDescription("Fechar ");

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void btPrimeiroActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btPrimeiroActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }
        
        btProximo.setEnabled(true);
        btUltimo.setEnabled(true);
        btPrimeiro.setEnabled(false);
        btAnterior.setEnabled(false);
    }//GEN-LAST:event_btPrimeiroActionPerformed

    private void btAnteriorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btAnteriorActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getSelectedRow() - 1;
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }
        
        if ((linhaAtual - 1) < 0) {
            btPrimeiro.setEnabled(false);
            btAnterior.setEnabled(false);
        } else {
            btProximo.setEnabled(true);
            btUltimo.setEnabled(true);
        }
    }//GEN-LAST:event_btAnteriorActionPerformed

    private void btProximoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btProximoActionPerformed
        int linhaAtual, qdeLinhas;
        linhaAtual = jTUnidade.getSelectedRow() + 1;
        qdeLinhas = jTUnidade.getRowCount();
        
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }
        
        if ((linhaAtual + 1) == qdeLinhas) {
            btProximo.setEnabled(false);
            btUltimo.setEnabled(false);
        } else {
            btPrimeiro.setEnabled(true);
            btAnterior.setEnabled(true);
        }
    }//GEN-LAST:event_btProximoActionPerformed

    private void btUltimoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btUltimoActionPerformed
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            linhaAtual = jTUnidade.getRowCount() - 1;
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }
        
        btProximo.setEnabled(false);
        btUltimo.setEnabled(false);
        btPrimeiro.setEnabled(true);
        btAnterior.setEnabled(true);
    }//GEN-LAST:event_btUltimoActionPerformed

    private void btNovoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btNovoActionPerformed
        novoRegistro();
        btSair.setVisible(false);
    }//GEN-LAST:event_btNovoActionPerformed

    private void btEditarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btEditarActionPerformed
        alteraRegistro();
        btSair.setVisible(false);
    }//GEN-LAST:event_btEditarActionPerformed

    private void btGravarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btGravarActionPerformed
        gravaRegistro();
    }//GEN-LAST:event_btGravarActionPerformed

    private void btCancelarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btCancelarActionPerformed
        cancelaRegistro();
        btSair.setVisible(true);
    }//GEN-LAST:event_btCancelarActionPerformed

    private void btExcluirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btExcluirActionPerformed
        excluiRegistro();
        btSair.setVisible(true);
    }//GEN-LAST:event_btExcluirActionPerformed

    private void btImprimirActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btImprimirActionPerformed
//        
//        ajustaCursor(0);
//
//        rel_Tabelas relat = new rel_Tabelas();
//        int val = 0;
//
//        if (relTipo1.isSelected()) {
//            val = 0;
//        }
//        if (relTipo2.isSelected()) {
//            val = 1;
//        }
//
//        try {
//            relat.gerar(val, "Cadastro de Setor", "SETOR");
//        } catch (JRException ex) {
//            Logger.getLogger(frameSetor.class.getName()).log(Level.SEVERE, null, ex);
//        } catch (SQLException ex) {
//            Logger.getLogger(frameSetor.class.getName()).log(Level.SEVERE, null, ex);
//        } catch (ClassNotFoundException ex) {
//            Logger.getLogger(frameSetor.class.getName()).log(Level.SEVERE, null, ex);
//        }
//        
//        ajustaCursor(1);

    }//GEN-LAST:event_btImprimirActionPerformed

    private void jTUnidadeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTUnidadeMouseClicked
        if (opcao.equals("")) {
            int linhaAtual;
            linhaAtual = jTUnidade.getSelectedRow();
            jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
            Atribui_Campos();
        }
    }//GEN-LAST:event_jTUnidadeMouseClicked

    private void jTUnidadeKeyReleased(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTUnidadeKeyReleased
        int linhaAtual;
        linhaAtual = jTUnidade.getSelectedRow();
        jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
        Atribui_Campos();
    }//GEN-LAST:event_jTUnidadeKeyReleased

    private void jtResponsavelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtResponsavelActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtResponsavelActionPerformed

    private void jtDescricaoActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtDescricaoActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtDescricaoActionPerformed

    private void jtCodSetorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtCodSetorActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtCodSetorActionPerformed

    private void jtOrganogramaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtOrganogramaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtOrganogramaActionPerformed

    private void btSairActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btSairActionPerformed
        saiTela();
    }//GEN-LAST:event_btSairActionPerformed

    private void jtSiglaActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jtSiglaActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jtSiglaActionPerformed

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton btAnterior;
    private javax.swing.JButton btCancelar;
    private javax.swing.JButton btEditar;
    private javax.swing.JButton btExcluir;
    private javax.swing.JButton btGravar;
    private javax.swing.JButton btImprimir;
    private javax.swing.JButton btNovo;
    private javax.swing.JButton btPrimeiro;
    private javax.swing.JButton btProximo;
    private javax.swing.JButton btSair;
    private javax.swing.JButton btUltimo;
    private javax.swing.ButtonGroup buttonGroup1;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JTable jTUnidade;
    private javax.swing.JTextField jtCodSetor;
    private javax.swing.JTextField jtDescricao;
    private javax.swing.JTextField jtOrganograma;
    private javax.swing.JTextField jtResponsavel;
    private javax.swing.JTextField jtSigla;
    private javax.swing.JLabel lbDescricao;
    private javax.swing.JLabel lbDescricao1;
    private javax.swing.JLabel lbSigla;
    private javax.swing.JLabel lbSigla1;
    private javax.swing.JPanel panelCadastro;
    private javax.swing.JRadioButton relTipo1;
    private javax.swing.JRadioButton relTipo2;
    // End of variables declaration//GEN-END:variables

    public void saiTela() {
        frameSetor.this.dispose();
    }
    
    public void ajustaCursor(int tipo) {
        Cursor cursor;
        
        if (tipo == 0) {
            cursor = Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR);
        } else {
            cursor = Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR);
        }
        
        setCursor(cursor);
        
    }
    
    public void ajusta_botoes() {
        if (opcao.equals("")) {
            btGravar.setEnabled(false);
            btCancelar.setEnabled(false);
            btNovo.setEnabled(true);
            btEditar.setEnabled(true);
            btExcluir.setEnabled(true);

//            lbSalvar.setEnabled(false);
//            lbCancelar.setEnabled(false);
//            lbIncluir.setEnabled(true);
//            lbAlterar.setEnabled(true);
//            lbExcluir.setEnabled(true);
            btPrimeiro.setEnabled(true);
            btAnterior.setEnabled(true);
            btProximo.setEnabled(true);
            btUltimo.setEnabled(true);
            
        } else {
            btGravar.setEnabled(true);
            btCancelar.setEnabled(true);
            btNovo.setEnabled(false);
            btEditar.setEnabled(false);
            btExcluir.setEnabled(false);

//            lbSalvar.setEnabled(true);
//            lbCancelar.setEnabled(true);
//            lbIncluir.setEnabled(false);
//            lbAlterar.setEnabled(false);
//            lbExcluir.setEnabled(false);
            btPrimeiro.setEnabled(false);
            btAnterior.setEnabled(false);
            btProximo.setEnabled(false);
            btUltimo.setEnabled(false);
        }
    }
    
    public void tabela() {
        jTUnidade.setModel(modelo);
        
        modelo.addColumn("Código");
        modelo.addColumn("Sigla");
        modelo.addColumn("Organograma");
        modelo.addColumn("Descrição");
        modelo.addColumn("Responsável");
        
        jTUnidade.getColumnModel().getColumn(0).setPreferredWidth(25);
        jTUnidade.getColumnModel().getColumn(1).setPreferredWidth(25);
        jTUnidade.getColumnModel().getColumn(2).setPreferredWidth(50);
        jTUnidade.getColumnModel().getColumn(3).setPreferredWidth(20);
        jTUnidade.getColumnModel().getColumn(4).setPreferredWidth(50);

        //codigo para esconder uma coluna na JTable
        //Esconder alguma coluna: No Caso a Primeira Coluna
        jTUnidade.getColumnModel().getColumn(0).setMinWidth(0);
        jTUnidade.getColumnModel().getColumn(0).setPreferredWidth(0);
        jTUnidade.getColumnModel().getColumn(0).setMaxWidth(0);
        
    }
    
    private void monta_jTUnidade() {
//      Fachada f = new Fachada();

        limpaCampos();
        SetorDAO udao = new SetorDAO();
        
        ArrayList<Setor> lista = new ArrayList<Setor>();
        
        modelo.setNumRows(0);
        lista = udao.findAll2();
        for (int i = 0; i < lista.size(); i++) {
            modelo.addRow(new Object[]{lista.get(i).getId_setor(),
                lista.get(i).getSigla(),
                lista.get(i).getOrganograma(),
                lista.get(i).getDescricao(),
                lista.get(i).getResponsavel(),});
        }
    }
    
    private void Atribui_Campos() {
        jtCodSetor.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 0).toString());
        jtOrganograma.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 2));
        jtSigla.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 1));
        jtDescricao.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 3));
        jtResponsavel.setText((String) jTUnidade.getValueAt(jTUnidade.getSelectedRow(), 4));
    }

    //Limpa os campos, para evitar de deletar um item e ele ainda ficar atribuido no panel
    public void limpaCampos() {
        jtCodSetor.setText("");
        jtOrganograma.setText("");
        jtSigla.setText("");
        jtDescricao.setText("");
        jtResponsavel.setText("");
    }
    
    public void exibePainelCadastro(boolean val) {
        //organiza os paineis
        panelCadastro.setVisible(val);
        //painel da tabela
        jScrollPane1.setVisible(!val);

        //organiza os botões
        btNovo.setVisible(!val);
        btEditar.setVisible(!val);
        btExcluir.setVisible(!val);
        btAnterior.setVisible(!val);
        btPrimeiro.setVisible(!val);
        btProximo.setVisible(!val);
        btUltimo.setVisible(!val);
        btImprimir.setVisible(!val);
        relTipo1.setVisible(!val);
        relTipo2.setVisible(!val);
    }
    
    private void novoRegistro() {
        liberarCampos(true);
        exibePainelCadastro(true);
        
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount() - 1;
        jTUnidade.changeSelection(linhaAtual, linhaAtual, false, false);
        opcao = "incluir";
        jTUnidade.setEnabled(false);
        ajusta_botoes();
        //Deixar os registros em branco
        jtCodSetor.setText(null);
        jtResponsavel.setText(null);
        jtSigla.setText(null);
        jtDescricao.setText(null);
        jtOrganograma.setText(null);
        
    }
    
    private boolean validarCampos() {
        
        if ((jtDescricao.getText().trim().equals("")) || (jtDescricao.getText() == null)) {
            JOptionPane.showMessageDialog(null, "O campo DESCRIÇÃO não pode ficar em branco. Verifique!!!");
            jtDescricao.requestFocus();
            return false;
        } else {
            if ((jtSigla.getText().trim().equals("")) || (jtSigla.getText() == null)) {
                JOptionPane.showMessageDialog(null, "O campo Sigla do Setor não pode ficar em branco. Verifique!!!");
                jtSigla.requestFocus();
                return false;
            } else {
                if ((jtOrganograma.getText().trim().equals("")) || (jtSigla.getText() == null)) {
                    JOptionPane.showMessageDialog(null, "O campo Organograma não pode ficar em branco. Verifique!!!");
                    jtSigla.requestFocus();
                    return false;
                } else {
                    if ((jtResponsavel.getText().trim().equals("")) || (jtResponsavel.getText() == null)) {
                        JOptionPane.showMessageDialog(null, "O campo Responsável não pode ficar em branco. Verifique!!!");
                        jtResponsavel.requestFocus();
                        return false;
                    }
                }
            }
        }
        return true;
    }
    
    private void alteraRegistro() {
        if (!(jtCodSetor.getText().equals(""))) {
            liberarCampos(true);
            exibePainelCadastro(true);
            
            opcao = "alterar";
            jTUnidade.setEnabled(false);
            ajusta_botoes();
            
            jtResponsavel.setEditable(true);
            jtSigla.setEditable(true);
            jtResponsavel.requestFocus();
        }
    }
    
    public void liberarCampos(boolean val) {
        jtSigla.setEditable(val);
        jtDescricao.setEditable(val);
        jtOrganograma.setEditable(val);
        jtResponsavel.setEditable(val);
    }
    
    private void gravaRegistro() {
        
        String mens = "";
        int valor = 0;
        Setor s = new Setor();
        
        SetorDAO pdao = new SetorDAO();
        
        while (validarCampos() == true) {
            
            s.setDescricao(jtDescricao.getText());
            s.setSigla(jtSigla.getText());
            s.setOrganograma(jtOrganograma.getText());
            s.setResponsavel(jtResponsavel.getText());
            
            if (opcao.equals("incluir")) {
                pdao.incluir(s);
                valor = 1;
                
                exibePainelCadastro(false);
                
                mens = "Registro Gravado com Sucesso!!!";
            } else if (opcao.equals("alterar")) {
                s.setId_setor(Integer.parseInt(jtCodSetor.getText()));
                pdao.alterar(s);
                valor = 1;
                mens = "Registro Alterado com Sucesso!!!";
                exibePainelCadastro(false);
            }
            
            if (valor > 0) {
                //JOptionPane.showMessageDialog(null,mens);
            } else {
                JOptionPane.showMessageDialog(null, "Não foi possivel " + opcao + " o registro. Verifique!!!");
                int linhaAtual;
                linhaAtual = jTUnidade.getRowCount();
                if (linhaAtual > 0) {
                    jTUnidade.changeSelection(0, 0, false, false);
                    Atribui_Campos();
                }
            }
            
            opcao = "";
            jTUnidade.setEnabled(true);
            jtCodSetor.setEditable(false);
            monta_jTUnidade();
            ajusta_botoes();
            liberarCampos(false);
            break;
        }
        
    }
    
    private void cancelaRegistro() {
        liberarCampos(false);
        exibePainelCadastro(false);
        
        int linhaAtual;
        linhaAtual = jTUnidade.getRowCount();
        if (linhaAtual > 0) {
            jTUnidade.changeSelection(0, 0, false, false);
            Atribui_Campos();
        }
        
        opcao = "";
        jtCodSetor.setEditable(false);
        jTUnidade.setEnabled(true);
        ajusta_botoes();
    }
    
    private void excluiRegistro() {
        int valor = 0;
        
        SetorDAO f = new SetorDAO();
        Setor s = new Setor();
        
        s.setId_setor(Integer.parseInt(jtCodSetor.getText()));
        
        String nome = "Tem Certeza em Deletar Este Registro de Setor?  a- " + jtResponsavel.getText();
        int opc = JOptionPane.showConfirmDialog(null, nome, "Exclusão", JOptionPane.YES_NO_OPTION);
        
        if (opc == JOptionPane.YES_OPTION) {
            f.remover2(s);
            valor = 1;
            
            if (valor > 0) {
                JOptionPane.showMessageDialog(null, "Registro excluido com sucesso!!!");
            } else {
                JOptionPane.showMessageDialog(null, "Erro na Exclusão - Verifique!!!");
            }
        }
        monta_jTUnidade();
        cancelaRegistro();
    }
}
